package club.service;

import club.pojo.Pet;
import com.github.pagehelper.PageInfo;

/**
 * 宠物服务接口
 * 定义了宠物管理相关的业务操作方法
 */
public interface PetService {

    /**
     * 分页查询所有宠物
     * @param pageNum 页码
     * @param pagesize 每页数量
     * @return 分页结果对象，包含宠物列表及分页信息
     */
    PageInfo<Pet> pets(Integer pageNum, Integer pagesize);

    /**
     * 根据ID查询宠物详情
     * @param id 宠物ID
     * @return 宠物对象，不存在则返回null
     */
    Pet findById(Integer id);

    /**
     * 创建新宠物
     * @param pet 宠物对象
     * @return 插入成功返回1，失败返回0
     */
    Integer create(Pet pet);

    /**
     * 分页查询宠物（支持按宠物类型筛选）
     * @param petType 宠物类型（如"猫"、"狗"）
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 分页结果对象，包含匹配的宠物列表及分页信息
     */
    PageInfo<Pet> allPet(String petType, Integer pageNum, Integer pageSize);

    /**
     * 添加宠物（与create方法功能重复，建议合并）
     * @param pet 宠物对象
     * @return 插入成功返回1，失败返回0
     */
    int add(Pet pet);

    /**
     * 更新宠物信息
     * @param pet 包含更新字段的宠物对象（需包含ID）
     * @return 更新成功返回1，失败返回0
     */
    int update(Pet pet);

    /**
     * 根据ID删除宠物
     * @param id 宠物ID
     * @return 删除成功返回1，失败返回0
     */
    int del(Integer id);
}